<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Cadastro extends MY_Controller {

	public function __construct(){
		parent::__construct();

		if(!$this->isEmpresaLoggedIn()){
			redirect('parasuaempresa/home');
		}

		// Carregamento dos models utilizados no cadastro
		$this->load->model('negocio/estado_model', 'Estado_model');
		$this->load->model('negocio/cidade_model', 'Cidade_model');
		$this->load->model('negocio/empresa_model', 'Empresa_model');
		$this->load->model('negocio/segmento_model', 'Segmento_model');

		$this->setViewData('cadastro_empresa', $this->getLoggedUser());
	}

	public function index(){	
		$this->cadastro();
	}

	public function cadastro(){
		$user_info = $this->getLoggedUser();
		$cod_empresa_auto = $user_info['cod'];

		// Carrega empresa do usuário logado
		$empresa = new Empresa($cod_empresa_auto);
		
		// tipo(1=erro,2=alerta,3=sucesso), mensagem
		$formMessage = array();

		//
		// Recebimento das variáveis do formulário
		// Somente dados que podem ser alterados
		//
		$datetime           = $this->input->post('datetime');
		$insc_estadual      = $this->input->post('insc_estadual');
		$razao_social       = $this->input->post('razao_social');
		$nome_fantasia      = $this->input->post('nome_fantasia');
		$telefone           = $this->input->post('telefone');
		$celular            = $this->input->post('celular');
		$responsavel        = $this->input->post('responsavel');
		$endereco           = $this->input->post('endereco');
		$numero             = $this->input->post('numero');
		$bairro             = $this->input->post('bairro');
		$cep                = $this->input->post('cep');
		$estado             = $this->input->post('estado');
		$cidade             = $this->input->post('cidade');
		$segmento           = $this->input->post('segmento');
		$site 	 	        = $this->input->post('site');

		$senha_atual			= $this->input->post('senha_atual');
		$nova_senha				= $this->input->post('nova_senha');
		$confirmar_nova_senha	= $this->input->post('confirmar_nova_senha');		

		$formData = array(
			'insc_estadual' => $insc_estadual !== FALSE ? $insc_estadual : $empresa->getIE(),
			'razao_social'  => $razao_social !== FALSE 	? $razao_social : $empresa->getRazaoSocial(),
			'nome_fantasia' => $nome_fantasia !== FALSE ? $nome_fantasia : $empresa->getNomeFantasia(),
			'telefone'      => $telefone !== FALSE 		? $telefone : $empresa->getTelefone(),
			'celular'       => $celular !== FALSE 		? $celular : $empresa->getCelular(),
			'responsavel'   => $responsavel  !== FALSE 	? $responsavel : $empresa->getAdministrador(),
			'endereco'      => $endereco  !== FALSE 	? $endereco : $empresa->getEndereco(),
			'numero'        => $numero  !== FALSE 		? $numero : $empresa->getNumero(),
			'bairro'        => $bairro !== FALSE 		? $bairro : $empresa->getBairro(),
			'site'          => $site !== FALSE 			? $site : $empresa->getSite(),
			'cep'           => $cep !== FALSE 			? $cep : $empresa->getCEPFormatted(),
			//'estado'        => $this->input->post('estado') ? $this->input->post('estado') : $empresa->getCidade()->getCodEstado(),
			'cidade'        => $cidade !== FALSE 		? $cidade : $empresa->getCodCidade()
			);

		//Cadastro da empresa
		if($datetime && !$senha_atual){	
			// Criação do objeto da empresa
			$empresa->setIE($insc_estadual);
			$empresa->setRazaoSocial($razao_social);
			$empresa->setNomeFantasia($nome_fantasia);
			$empresa->setTelefone($telefone);
			$empresa->setCelular($celular);
			$empresa->setAdministrador($responsavel);
			$empresa->setEndereco($endereco);
			$empresa->setNumero($numero);
			$empresa->setBairro($bairro);
			$empresa->setCEP($cep);
			$empresa->setCodCidade($cidade);
			$empresa->setSegmentoPrincipal(new Segmento($segmento));
			$empresa->setSite($site);

			$validacao = $empresa->gravar();

			if(!$validacao[0]){
				$formMessage = array(1, $validacao[1]);
			}else{
				$formMessage = array(3, 'Seu cadastro foi alterado com sucesso.');

				$this->session->set_userdata('username', $nome_fantasia);
				$this->viewData['user_info']['username'] = $nome_fantasia;
				$this->viewData['cadastro_empresa']['username'] = $nome_fantasia;

				foreach ($formData as $chave) {
					$formData[$chave] = '';
				}
			}

			$this->setViewData('form_origem','cadastro');
		}else if($datetime && $senha_atual){
			if($empresa->comparePassword($senha_atual)){
				if($nova_senha != $senha_atual){
					$empresa->setSenha($nova_senha);
					$empresa->gravar();
				}
				$formMessage = array(3, 'Senha alterada com sucesso.');
			}else{
				$formMessage = array(1, 'Senha atual inválida.');
			}

			$this->setViewData('form_origem','alterar_senha');
		}
		
		//
		// Adiciona Scripts não padrão no carregamento da página
		//
		
		// plugin validação + extras para validar CPF/CNPJ e mensagens padrão
		$this->addScript(base_url('assets/js/jquery.validate.min.js'));
		$this->addScript(base_url('assets/js/shared/validation.js'));
		// plugin p/ colocar máscara nos campos
		$this->addScript(base_url('assets/js/jquery.maskedinput.min.js'));
		// script p/ a página
		$this->addScript(base_url('assets/js/parasuaempresa/cadastro/cadastro.js'));

		// Dados que serão enviados para a view
		$this->setViewData('empresa', $empresa);
		$this->setViewData('main_content', 'parasuaempresa/cadastro/cadastro');
		$this->setViewData('estados', $this->Estado_model->getAll());
		$this->setViewData('cidades', $this->Cidade_model->getAll());
		$this->setViewData('segmentos', $this->Segmento_model->getAll());
		$this->setViewData('formMessage', $formMessage);
		$this->setViewData('formData', $formData);
		
		// Carrega a view
		$this->load->view('_shared/template', $this->viewData);
	}

}